package com.hzw.saas.common.pay.enums;

/**
 * 订单状态枚举
 *
 * @author zzl
 * @since 2020-09-24
 */
public enum TradeStatusEnum {

    // 目前订单状态命名方式与支付宝保持一致

    /**
     * 支付宝中
     *
     * TRADE_SUCCESS 的通知触发条件是商户签约的产品支持退款功能的前提下，买家付款成功
     * TRADE_FINISHED 的通知触发条件是商户签约的产品不支持退款功能的前提下，买家付款成功；或者，商户签约的产品支持退款功能的前提下，交易已经成功并且已经超过可退款期限
     */

    WAIT_BUYER_PAY("交易创建，等待买家付款"),
    TRADE_CLOSED("未付款交易超时关闭，或支付完成后全额退款"),
    TRADE_SUCCESS("交易支付成功"),
    TRADE_FINISHED("交易结束，不可退款"),

    REFUND_PROGRESS("退款中"),
    REFUND_SUCCESS("退款成功"),
    REFUND_FAIL("退款失败"),

    UNKNOWN("未知状态")
    ;

    private final String statusText;

    private TradeStatusEnum(String statusText) {
        this.statusText = statusText;
    }

    public String getStatusText() {
        return statusText;
    }

    public static TradeStatusEnum getByName(String name) {
        TradeStatusEnum tradeStatusEnum = null;
        try {
            tradeStatusEnum = TradeStatusEnum.valueOf(name);
        } catch (Exception e) {
        }
        return tradeStatusEnum;
    }

}
